In this project-based lab, we are given a piece of audio with two bird sounds mixed in. Through the human ear, we can simply distinguish the two sounds. Then you can think about how, through technical means, you can turn this piece of audio mixed with two bird sounds into two pieces of audio with separate bird sounds? After running this lab, you will have the answer.
The purpose of this lab is to separate the two bird sounds in the audio and get separate bird sounds. To achieve this, we will use C++ language to write FIR filter for separation at HLS (high level synthesis) level, and use parallel and pipelined hardware design ideas and AXI4 data transfer protocol to perform hardware acceleration on PYNQ board. We also use python for software code writing to show the advantages of hardware acceleration after comparing the two.
Part | Topic | Description | Environment |
---|---|---|---|
1 | Software Implementation | Read in an audio clip and visualize the audio in the frequency domain | Jupyter Notebook |
Designing a high-pass filter to remove low-frequency birdsong | |||
2 | HLS Kernel Programming | Determine the Design Specifications | AMD Vitis HLS 2023.2 |
Code hoisting to remove unnecessary conditional operations | |||
Array partitioning to enable loop parallelism | |||
Loop split for tailored optimizations | |||
Loop Unrolling and Pipelining | |||
Putting it All Together -- Kernel Code Analysis | |||
3 | System-level Integration | Create the kernel Graph and the test bench | Jupyter Notebook |
Analyze AXI4 Data Transfer Protocol | |||
Load the overlay and run the application on the PYNQ framework | |||
Visualize the results and analyze the performance |
Copyright© 2024 Advanced Micro Devices